#include <stdio.h>

#include "hash_table.h"
#include <stdlib.h>
#include "ficheiro.h"

#define TAM 500


int ler_relacoes_txt(const char * relacoes_txt){

    if(relacoes_txt == NULL){
        printf("\nNao existe o ficheiro para ler os utilizadores\n");
        return -1;
    }

    RELACOES *relacao = malloc(sizeof(RELACOES));
    relacao->num1 = calloc(100,sizeof(char));
    relacao->num2 = calloc(100,sizeof(char));

    FILE *relacoes;
    char buffer1[TAM];

    //Abrir ficheiros para leitura

    relacoes=fopen(relacoes_txt,"a+");

    char *le_relacao = fgets(buffer1,TAM,relacoes);
    int i=0;

    while(le_relacao!=NULL){

        i++;
        fscanf(relacoes,"%[^',']s,",relacao->num1);
        fscanf(relacoes,",%s",relacao->num2);
	printf("Num1: %s\n",relacao->num1);
	printf("Mum2: %s\n",relacao->num2);
        le_relacao=fgets(buffer1, TAM, relacoes);
    }

    printf("\nFicheiro lido com sucesso :)\nForam lidas %d relações.\n",i);


    fclose(relacoes);

	return 0;
}

/**
 * return 0 sucesso
 * return !=0 insucesso
 * */

int ler_utilizadores_txt(const char * utilizadores_txt){

    if(utilizadores_txt == NULL){
        printf("\nNao existe o ficheiro para ler os utilizadores\n");
        return -1;
    }

    USERS *utilizador = malloc(sizeof(USERS));
    utilizador->num = calloc(110, sizeof(char));
    utilizador->nome = calloc(200,sizeof(char));
    utilizador->mail = calloc(280,sizeof(char));
    utilizador->morada = calloc(250,sizeof(char));

    int pos = lligada_inserir(users, utilizador);
    int pos_hash = hash(utilizador->nome)
    hash_table_inserir(hash_name)

    FILE *utilizadores;
    char buffer2[TAM];

    /* Abrir ficheiros para leitura*/
    utilizadores = fopen(utilizadores_txt, "a+");

    char *le_utilizador = fgets(buffer2,TAM,utilizadores);
    int i = 0;
    while (le_utilizador != NULL){

        i++;
	printf("--------------------\nUtilizador %d\n",i);

	fscanf(utilizadores,"%s",utilizador->num);
	fscanf(utilizadores," %[^\t]s",utilizador->nome);
	fscanf(utilizadores," %s",utilizador->mail);
	fscanf(utilizadores," %[^\n]s",utilizador->morada);

	printf("NUM: %s\n",utilizador->num);
	printf("NOME: %s\n",utilizador->nome);
	printf("Mail: %s\n",utilizador->mail);
	printf("Morada: %s\n",utilizador->morada);

	le_utilizador = fgets(buffer2,TAM,utilizadores);
    }

    printf("\nFicheiro lido com sucesso :)\nForam lidos %d utilizadores.\n",i);

    fclose(utilizadores);

    return 0;
}

int ler_coordenadas_txt(const char * coordenadas_txt){

    if(coordenadas_txt == NULL){
        printf("\nNao existe o ficheiro para ler os utilizadores\n");
        return -1;
    }

    COORDENADAS *coordenada = malloc(sizeof(COORDENADAS));
    coordenada->id = calloc(100,sizeof(char));
    coordenada->local = calloc(100,sizeof(char));
    coordenada->grau1 = calloc(100,sizeof(char));
    coordenada->min1 = calloc(100,sizeof(char));
    coordenada->grau2 = calloc(100,sizeof(char));
    coordenada->min2 = calloc(100,sizeof(char));

    FILE *coordenadas;
    char buffer3[TAM];

    //Abrir ficheiros para leitura

    coordenadas=fopen(coordenadas_txt,"a+");

    char *le_coordenada = fgets(buffer3,TAM,coordenadas);
    int i=0;
    while(le_coordenada!= NULL){

        i++;
        fscanf(coordenadas,"%[^':']s ",coordenada->id);
        fscanf(coordenadas,":%[^':']s",coordenada->local);
        fscanf(coordenadas,":%[^'.']s",coordenada->grau1);
        fscanf(coordenadas,".%[^':']s",coordenada->min1);
        fscanf(coordenadas,":%[^'.']s",coordenada->grau2);
        fscanf(coordenadas,".%[^\n]s",coordenada->min2);

	printf("id: %s\n",coordenada->id);
	printf("local: %s\n",coordenada->local);
        printf("grau1: %s\n",coordenada->grau1);
	printf("min1: %s\n",coordenada->min1);
        printf("grau2: %s\n",coordenada->grau2);
	printf("min2: %s\n",coordenada->min2);

        le_coordenada=fgets(buffer3, TAM, coordenadas);

   }

    	printf("\nFicheiro lido com sucesso :)\nForam lidas %d coordenadas.\n",i);


    fclose(coordenadas);

	return 0;
}


int main (){
/*
    utilizadorS *utilizador=NULL;
    utilizador=le_utilizadores();


 */
    ler_utilizadores_txt("utilizadoresFSQ_UM.txt");
    ler_relacoes_txt("relacoesEntreLugares.txt");
    ler_relacoes_txt("relacoesEntreAmigos.txt");
    ler_coordenadas_txt("coordenadas.txt");
    return 0;
}